﻿package com.zouloux.core.masters
{
	import com.zouloux.core.data.IDataCollection;
	import com.zouloux.core.data.remote.IRemote;
	import flash.events.Event;
	import flash.events.IEventDispatcher;
	
	/**
	 * ...
	 * @author ZoulouX
	 */
	public interface IModel extends IEventDispatcher
	{
		/**
		 * La collection associée à ce model.
		 */
		function get collection ():IDataCollection;
		function set collection (pValue:IDataCollection):void;
		
		/**
		 * Vérifie l'état de validé du model
		 */
		function get valid ():Boolean
		function set valid (pValue:Boolean):void
		
		/**
		 * La remote associée à ce model
		 */
		function get remote ():IRemote;
		function set remote (value:IRemote):void;
		
		/**
		 * Vérifier si le model est prêt
		 */
		function get ready ():Boolean;
		
		/**
		 * Libérer l'espace mémoire
		 */
		function dispose ():void
	}
}